import 'package:flutter/foundation.dart' show ChangeNotifier;
import 'package:flutter/foundation.dart';
import 'package:message_tools/model/sms_template.dart';
import 'package:message_tools/service/db_repository.dart';

class SmsTemplateModel with ChangeNotifier {
  SmsTemplate _smsTemplate;
  List<SmsTemplate> _list = [];

  List<SmsTemplate> get list => _list;
  SmsTemplate get smsTemplate => _smsTemplate;

  loadData({int pageNum}) {
    DbRepository.fetchSmsTemplateList().then((data) {
      _list = data;
      notifyListeners();
    });
  }

  void setEditSmsTemplate(SmsTemplate smsTemplate) {
    _smsTemplate = smsTemplate;
    notifyListeners();
  }

  void save(SmsTemplate smsTemplate) {
    if (smsTemplate.id == null) {
      add(smsTemplate);
    } else {
      update(smsTemplate);
    }
  }

  void add(SmsTemplate smsTemplate) {
    DbRepository.insertSmsTemplate(smsTemplate);
    _list.insert(0, smsTemplate);
    notifyListeners();
  }

  void update(SmsTemplate smsTemplate) {
    DbRepository.updateSmsTemplate(smsTemplate);
    _list.forEach((item) {
      if (smsTemplate.id == item.id) {
        item = smsTemplate;
      }
    });

    notifyListeners();
  }
}
